背景:我在使用Thoughtbot的“工厂女孩”gem时遇到了一些问题,该gem用于创建要在单元测试和其他测试中使用的对象。我想转到控制台并运行不同的FactoryGirl调用以检查发生了什么。例如,我想去那里做...>>Factory(:user).inspect我知道您可以在不同的环境中运行控制台...$脚本/控制台RAILS_ENV=test但是当我这样做时,工厂类不可用。看起来好像test_helper.rb没有加载。我尝试了各种require调用,包括一个带有到test_helper.rb的绝对路径的调用,但它们的失败与此类似:$script/consoleRAILS_ENV
安装Yosemite后,我无法运行brew或ruby。我在brewupdate上遇到这个错误:/usr/local/bin/brew:/usr/local/Library/brew.rb:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby:badinterpreter:Nosuchfileordirectory/usr/local/bin/brew:line23:/usr/local/Library/brew.rb:Undefinederror:0在irb上得到这个错误:/System/Librar
我需要一个函数,is_an_integer,其中"12".is_an_integer?返回true。"blah".is_an_integer?返回false。我如何在Ruby中执行此操作?我会写一个正则表达式,但我假设有一个我不知道的helper。 最佳答案 好吧,这是简单的方法:classStringdefis_integer?self.to_i.to_s==selfendend>>"12".is_integer?=>true>>"blah".is_integer?=>false我不同意引发异常以转换字符串的解决方案-异常不是控制
我的大部分测试都引发了以下问题,我不明白为什么。所有方法调用都会引发“验证”错误。我检查了代码是否有一个名为“authenticate”的方法,但没有这样的方法。1)Admin::CommentsControllerhandlingGETtoindexissuccessfulFailure/Error:get:indexundefinedmethod`authenticate!'fornil:NilClass#./spec/controllers/admin/comments_controller_spec.rb:9:in`block(3levels)in'124)PostsContr
我有一些模型具有after_save回调。通常这很好,但在某些情况下,例如创建开发数据时,我想在不运行回调的情况下保存模型。有没有一种简单的方法可以做到这一点?类似于...Person#save(:run_callbacks=>false)或Person#save_without_callbacks我查看了Rails文档,但没有找到任何内容。然而,根据我的经验,Rails文档并不总能说明全部情况。更新我找到了ablogpost这解释了如何从这样的模型中删除回调:Foo.after_save.clear我找不到记录该方法的位置,但它似乎有效。 最佳答案
我认为有一种方法可以只运行具有给定标签的测试。有人知道吗? 最佳答案 您可以使用:focus散列属性标记示例。例如,#spec/foo_spec.rbRSpec.describeFoodoit'isneverexecuted'doraise"neverreached"endit'runsthisspec',focus:truedoexpect(1).toeq(1)endendrspec--tagfocusspec/foo_spec.rb有关GitHub的更多信息.(谁有更好的链接,请指教)(更新)RSpec现在是superblydo
我可以在一个文件中运行所有测试:raketestTEST=path/to/test_file.rb但是,如果我只想在那个文件中运行一个测试,我该怎么做呢?我正在寻找类似的功能:rspecpath/to/test_file.rb-l25 最佳答案 命令应该是:%raketestTEST=test/test_foobar.rbTESTOPTS="--name=test_foobar1-v" 关于ruby-是否可以在MiniTest中运行单个测试?,我们在StackOverflow上找到一个类
在RSpec中测试模块的最佳实践是什么?我有一些模块包含在少数模型中,现在我只是对每个模型进行重复测试(几乎没有差异)。有没有办法让它干起来? 最佳答案 最好的方式=>let(:dummy_class){Class.new{includeModuleToBeTested}}或者你可以用你的模块扩展测试类:let(:dummy_class){Class.new{extendModuleToBeTested}}在before(:each)中使用'let'比使用实例变量定义虚拟类要好WhentouseRSpeclet()?
我想测试一个类是否继承自另一个类,但似乎没有相应的方法。classAendclassBfalseB.superclass==A=>true我想要的一个简单实现是:classClassdefis_subclass_of?(clazz)returntrueifsuperclass==clazzreturnfalseifself==Objectsuperclass.is_subclass_of?(clazz)endend但我希望它已经存在。 最佳答案 只需使用运算符BtrueAfalse或使用运算符(operator)BtrueAtrue
我在RubyonRails中使用IF语句来尝试测试是否设置了请求参数。无论是否设置了两个参数,以下ifblock的第一部分都会被触发。如果同时设置了params[:one]和params[:two],我怎样才能让这部分被触发?if(defined?params[:one])&&(defined?params[:two])...dosomething...elsif(defined?params[:one])...dosomething...end 最佳答案 你想要has_key?:if(params.has_key?(:one)&&